using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
 
namespace ArkanoidGame
{
   public static class BricksSettings
   {
       /* 
         NOTES:
         ------
         * Distances are in pixels
         * Velocities are in pixels per second
 
        */
       public const int BRICK_WIDTH = 40;                                              // Width of a brick
       public const int BRICK_HEIGHT = 20;                                             // Height of a brick
       public const int BRICK_PADDING_X = 2;                                           // Horizontal space between bricks
       public const int BRICK_PADDING_Y = 2;                                           // Vertical space between bricks
 
       public const int HUD_HEIGHT = 50;                                               // The height of the hud
 
       public const int BALL_WIDTH = 10;                                               // Width of the ball
       public const int BALL_HEIGHT = 10;                                              // Height of the ball
       public const float BALL_INITIAL_VELOCITY_Y = -200f;                             // The initial vertical velocity of the ball
       public const float BALL_VECLOITY_HIT_INCREMENT_Y = 10f;                         // How much the vertical velocity will increase upon contact with a brick
       public const float BALL_VELOCITY_Y_MAX = 550f;                                  // Maximum vertical velocity for the ball
       public const float BALL_MAX_BOUNCE_VELOCITY_X = 200f;                           // The maximum horizontal speed when bouncing off a paddle
       public const float BALL_MIN_BOUNCE_VELOCITY_X = 0f;                             // The minimum horizontal speed when bouncing off a paddle
 
       public const int PADDLE_WIDTH = 75;                                             // The width of the paddle
       public const int PADDLE_HEIGHT = 15;                                            // The height of hte paddle
       public const int PADDLE_DISTANCE_FROM_HUD = 20;                                 // The distance from the top of the hud to the bottom of the paddle
 
       public const int LIVES_DEFAULT = 2;                                             // Default starting lives
       public const int LIVES_MAX = 5;                                                 // Maximum number of lives permitted

       public const float BONUS_VELOCITY_Y = 200f;
       public const float BONUS_WIDTH = 20f;
       public const float BONUS_HEIGTH = 16f;
       public const float BONUS_PAD_WIDTH_INCREMENT = 20f;

       public const int SCORE_MULTIPLIER_MAX = 5;                                      // The highest the score multiplier will go
       public const int SCORE_BASIC_BRICK = 10;                                        // The base score amount for hitting a brick
       public const int SCORE_MAXHIGHSCORES = 10;                                      // Maximum number of high scores to keep
       public const int SCORE_AMOUNT_PER_LIFE = 1000;
       
       public const float HIGHSCORE_TEXTPADDING_X = 10f;                               // Horizontal text padding for high score box
       public const float HIGHSCORE_TEXTPADDING_Y = 10f;                               // Vertical text padding for high score box

       public static Color OUTLINE_COLOR = Color.FromArgb(102, 255, 0);
       public static Color FILL_COLOR = Color.FromArgb(0, 32, 0);
   }
}